The advent of non-volatile electronic memory has provided remarkable benefits for storage of electronic information. Non-volatile memory can retain stored data even when not powered. Thus, non-volatile memory provides for ready transportation of data as continuous connection to a power source, such as a battery, is not necessary. Furthermore, electrical power can be preserved by utilizing non-volatile memory by simply shutting off power to a device when processing requirements or other system requirements are not required.
Some examples of non-volatile memory can include mechanically addressed non-volatile memory, such as hard disks, optical discs, magnetic tape, holographic memory, etc., and electrically addressed non-volatile memory, such as Flash memory (e.g., NOR gate flash, NAND gate flash, electrically erasable read only memory [EAROM], electrically programmable read only memory [EPROM], electrically erasable programmable read only memory [EEPROM]). Some electrically addressed memory can comprise raw memory that is controlled by a device processor (e.g., a central processing unit of a personal computer). In such instances, the device processor requires access to instructions for properly programming and/or erasing the raw memory. In other instances, electrically addressed memory is coupled with a microcontroller. The microcontroller can perform read, write and erase operations, as well as data management, such as cell interleaving, memory block maintenance and cell error management. Typically, the microcontroller is provided with a default set of instructions when manufactured to perform the above operations.
Memory coupled with a microcontroller can provide an advantage for a host system as opposed to non-controlled, raw flash. For instance, operations associated with data storage are offloaded to the microcontroller alleviating execution demands at a host processor. Accordingly, in such an arrangement, the host processor simply provides data to be stored or requests data to be retrieved and receives the data. Addressing, maintenance, erasing, wear-leveling, and like operations can be avoided by the host processor, enabling the host processor to reserve processing resources for host applications instead.